import { Component, OnInit } from '@angular/core';
import { DialogService, LazyLoadEvent } from 'primeng/primeng';
import { Router, ActivatedRoute, ParamMap } from '@angular/router';
import { HotlineService } from '../hotline.service';
import { switchMap } from 'rxjs/operators';

@Component({
    templateUrl: './hotline-detail.component.html',
    styleUrls: ['./hotline-detail.component.scss'],
    providers: [DialogService, HotlineService]
})
export class HotlineDetailComponent implements OnInit {
    //诉求三率
    cols0: any[] = [
        { field: 'yesswNum', header: '市长热线编号', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'dispatchDate', header: '派单时间', style: { 'width': '160px', 'text-align': 'center', 'height': '45px' } },
        { field: 'dispatchType', header: '回访方式', style: { 'width': '100px', 'text-align': 'center', 'height': '45px' } },
        { field: 'unitName', header: '处置部门', style: { 'width': '100px', 'text-align': 'center', 'height': '45px' } },
        { field: 'reporterName', header: '举报人', style: { 'width': '100px', 'text-align': 'center', 'height': '45px' } },
        { field: 'callNum', header: '来电号码', style: { 'width': '100px', 'text-align': 'center', 'height': '45px' } },
        { field: 'answerFlagName', header: '专业部门反馈', style: { 'width': '120px', 'text-align': 'center', 'height': '45px' } },
        { field: 'finishFlagName', header: '问题解决', style: { 'width': '100px', 'text-align': 'center', 'height': '45px' } },
        { field: 'pleasedFlagName', header: '问题处理满意', style: { 'width': '100px', 'text-align': 'center', 'height': '45px' } },
        { field: 'revisitDate', header: '区级回访时间', style: { 'width': '150px', 'text-align': 'center', 'height': '45px' } },
        { field: 'cityFinishFlagName', header: '市级问题解决', style: { 'width': '100px', 'text-align': 'center', 'height': '45px' } },
        { field: 'cityPleasedFlagName', header: '市级问题处理满意', style: { 'width': '180px', 'text-align': 'center', 'height': '45px' } },
        { field: 'cityRevisitDate', header: '市级回访时间', style: { 'width': '150px', 'text-align': 'center', 'height': '45px' } },
        { field: 'dispatchType', header: '市级12345派遣方式', style: { 'width': '180px', 'text-align': 'center', 'height': '45px' } },
        { field: 'recDispNum', header: '案件号', style: { 'width': '180px', 'text-align': 'center', 'height': '45px' } }
    ];
    //街道承办
    cols1: any[] = [
        { field: 'yesswNum', header: '12345工单号', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'recordTypeName', header: '问题分类', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'reporterName', header: '来电人', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'recordDesc', header: '主要内容', style: { 'width': '300px', 'text-align': 'center', 'height': '45px', 'white-space': 'nowrap', 'overflow': 'hidden' } },
        { field: 'address', header: '问题点位', style: { 'width': '200px', 'text-align': 'center', 'height': '45px', } },
        { field: 'callNum', header: '联系方式', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'dispatchType', header: '问题来源', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'streetReceiveDate', header: '街道承办时间', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'unitName', header: '属地街道', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
    ];
    //部门承办
    //街道承办
    cols2: any[] = [
        { field: 'yesswNum', header: '12345工单号', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'recordTypeName', header: '问题分类', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'reporterName', header: '来电人', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'recordDesc', header: '主要内容', style: { 'width': '300px', 'text-align': 'center', 'height': '45px', 'white-space': 'nowrap', 'overflow': 'hidden' } },
        { field: 'address', header: '问题点位', style: { 'width': '200px', 'text-align': 'center', 'height': '45px', 'white-space': 'nowrap', 'overflow': 'hidden' } },
        { field: 'callNum', header: '联系方式', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'dispatchType', header: '问题来源', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'unitReceiveDate', header: '部门承办时间', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
        { field: 'unitName', header: '属地街道', style: { 'width': '150px', 'text-align': 'center', 'height': '45px', } },
    ];
    // 栏目
    cols: any[] = [];
    //数据解析栏目
    items: any[] = [];

    loading: boolean = true;
    totalRecords: number = 0;
    selectedRecord: any = {};
    start: any;
    end: any;
    name: string;
    type: string;
    khType: string;
    responseType: string; //全部 市级回访 区级回访
    constructor(
        private router: Router,
        private route: ActivatedRoute,
        private hotlineService: HotlineService) {
    }

    ngOnInit() {
        this.cols = this.cols0;
        this.route.paramMap.pipe(
            switchMap((params: ParamMap) => {
                this.start = params.get('start');
                this.end = params.get('end');
                this.name = params.get('name');
                this.type = params.get('type');
                this.khType = params.get('khType');
                this.responseType = params.get('responseType');
                if (this.name == '统计汇总') {
                    this.name = '';
                }
                return this.hotlineService.loadDetail({ 'start': this.start, 'end': this.end, 'name': this.name, 'type': this.type, 'khType': this.khType, 'responseType': this.responseType });
            })
        ).subscribe(items => {
            this.type == '2' && (this.cols = this.cols1);
            this.loading = false;
            this.items = items.list;
            this.totalRecords = items.total;
            if (this.items.length > 0) {
                this.selectedRecord = this.items[0];
            }
        });
    }

    /** 装载 */
    loadLazy(event: LazyLoadEvent) {
        let pageSize = 30;
        let pageNum = event.first / event.rows + 1;
        this.loading = true;
        this.hotlineService.loadDetail(
            { 'start': this.start, 'end': this.end, 'name': this.name, 'type': this.type, 'khType': this.khType, 'responseType': this.responseType },
            pageSize,
            pageNum
        ).subscribe(items => {
            if ('1' == this.type) {
                this.cols = this.cols0;
            } else if ('2' == this.type) {
                this.cols = this.cols1;
            } else if ('3' == this.type) {
                this.cols = this.cols2;
            }
            this.loading = false;
            this.items = items.list;
            this.totalRecords = items.total;
            if (this.items.length > 0) {
                this.selectedRecord = this.items[0];
            }
        })
    }
    goBack() {
        this.router.navigate(['/hotline/stat', {
            'start': this.start,
            'end': this.end,
            'type': this.type,
            'khType': this.khType, //街道、部门
            'responseType': this.responseType //全部、市级回访、区级回访 
        }]);
    }
}